/*
 * @Description: 主页相关接口处理
 * @Date: 2023-06-09 15:05:02
 * @LastEditTime: 2024-04-28 18:04:08
 * @FilePath: \brush-question-node\router_handler\home.js
 */
const db = require('../db/index')
const {website} = require('../config/website')
//导入文件类型判断方法
const minmetype = require('../minmetype/index')


exports.addArticle = (req, res) => {
  console.log(req.body) // 文本类型的数据
  console.log('--------分割线----------')
  console.log(req.file) // 文件类型的数据
  const path = require('path')

  if (!minmetype.limitedFileType(req.file.mimetype, ['png', 'jpg', 'jpeg'])) return res.cc('只能上传图片！')

  const articleInfo = {
    // 标题、内容、状态、所属的分类Id
    ...req.body,
    // 文章封面在服务器端的存放路径
    image_src: path.join(req.file.filename),
    // 文章发布时间
    pub_date: new Date(),

    size: req.file.size

  }

  const sql = `insert into swiper_data set ?`
  // 执行 SQL 语句
  db.query(sql, articleInfo, (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err)

    // 执行 SQL 语句成功，但是影响行数不等于 1
    if (results.affectedRows !== 1) return res.cc('发布失败！')

    // 发布文章成功
    res.cc('发布成功', 0)
  })
}


//首页轮播图
exports.getSwiperData = (req, res) => {

  const sql = `select * from home_swiper_data`

  db.query(sql, (err, results) => {
    // 执行 SQL 语句失败
    console.log(err);
    if (err) return res.cc(err)

    res.send({
      meta: {
        status: 200,
        msg: '获取轮播成功！',
      },
      message: results.map(v => {
        return {
          ...v,
          image_src: `${website.http}/public/${v.image_src}`
        }
      })
    })
  })
}

//首页导航图
exports.getNavData = (req, res) => {

  const sql = `select * from home_nav_data`

  db.query(sql, (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err)

    res.send({
      meta: {
        status: 200,
        msg: '获取导航成功！',
      },
      message: results.map(v => {
        return {
          ...v,
          image_src: `${website.http}/public/${v.image_src}`
        }
      })
    })
  })
}

//首页楼层图
exports.getFloorData = (req, res) => {
  const sql = `select * from home_floor_data`
  db.query(sql, async (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err)

    let finallyData = results.filter(v => !v.pid)
    let resMes = finallyData.map(e => {
      return {
        floor_title: {
          name: e.name,
          image_src: e.image_src
        },
        product_list: results.filter(_ => _.pid === e.id)
      }
    })
    res.send({
      meta: {
        status: 200,
        msg: '获取数据成功！',
      },
      message: resMes
    })
  })

}

//首页分类图
exports.getCataData = (req, res) => {
  const sql = `select * from home_cate_data`
  db.query(sql, (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err)

    res.send({
      meta: {
        status: 200,
        msg: '获取分类数据成功！',
      },
      message: results
    })
  })
}